home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / ab20 / ab20_archive / graphics / blankers / shadowmaster.lzh / source / config / font-config.c next >
C/C++ Source or Header  |  1991-12-29  |  2KB  |  64 lines

  1. /*
  2.  * Config program for use by savers that just need a font selected.
  3.  *
  4.  * Copyright (c) 1991, Mike Meyer
  5.  * All Rights Reserved
  6.  *
  7.  * See the file "ShadowMaster:Distribution"  for information on distribution.
  8.  *
  9.  * ===build instructions
  10.  * % lc font-config ; output= font-config.o input= font-config.c
  11.  * % blink font-config.o lib lib:amiga.lib to font-config SC SD ; output= font-config input= font-config.o
  12.  * % copy font-config //config
  13.  * ===endbuild
  14.  */
  15.  
  16. #include <exec/types.h>
  17. #include <utility/tagitem.h>
  18. #include <dos/dos.h>
  19. #include <libraries/asl.h>
  20. #include <proto/exec.h>
  21. #include <proto/dos.h>
  22. #include <proto/asl.h>
  23.  
  24. struct ExecBase        *SysBase = NULL ;
  25. struct DosLibrary    *DOSBase = NULL ;
  26. struct Library        *AslBase = NULL ;
  27.  
  28. #define done(x)    do { status = x; goto out; } while (0) ;
  29. int __saveds
  30. start(void) {
  31.     int            status ;
  32.     struct RDArgs        *args = NULL ;
  33.     struct FontRequester    *my_req = NULL ;
  34.     long            opts[3] = { 0, 0, 0} ;
  35.     
  36.  
  37.     SysBase = *((struct ExecBase **) 4);
  38.     if (!(DOSBase = (struct DosLibrary *) OpenLibrary("dos.library", 37)))
  39.         done(RETURN_FAIL) ;
  40.     if (!(AslBase = OpenLibrary("asl.library", 37)))
  41.         done(RETURN_FAIL) ;
  42.     if (!(args = ReadArgs("NAME/A,FONT,SIZE/N", opts, NULL)))
  43.         done(RETURN_ERROR) ;
  44.  
  45.     if (!(my_req = AllocAslRequestTags(ASL_FontRequest,
  46.                 ASL_Hail, (LONG) opts[0],
  47.                 ASL_LeftEdge, 0, ASL_TopEdge, 11,
  48.                 ASL_FontName, opts[1] ? ((char *) opts[1]) : "topaz.font",
  49.                 ASL_FontHeight, opts[2] ? *((long *) opts[2]) : 8,
  50.                 TAG_DONE, 0)))
  51.         done(RETURN_FAIL) ;
  52.     if (AslRequest(my_req, NULL))
  53.         Printf("%s FONT %s SIZE %ld\n", opts[0],
  54.             my_req->fo_Attr.ta_Name, my_req->fo_Attr.ta_YSize) ;
  55.  
  56.     status = RETURN_OK ;
  57. out:
  58.     if (my_req) FreeAslRequest(my_req) ;
  59.     FreeArgs(args) ;
  60.     if (AslBase) CloseLibrary(AslBase) ;
  61.     if (DOSBase) CloseLibrary((struct Library *) DOSBase) ;
  62.     return status ;
  63.     }
  64.